package demo12.gumballmonitor;


/**
 * 测试添加机器位置后，不用代理模式时
 * */
public class GumballMachineTestDrive {
	public static void main(String[] args) {
		/*         System.exit(0)是将你的整个虚拟机里的内容都停掉了 ，而dispose()只是关闭这个窗口，但是并没有停止整个application exit() 。无论如何，内存都释放了！也就是说连JVM都关闭了，内存里根本不可能还有什么东西
        System.exit(0)是正常退出程序，而System.exit(1)或者说非0表示非正常退出程序
        System.exit(status)不管status为何值都会退出程序。和return 相比有以下不同点：return是回到上一层，而System.exit(status)是回到最上层
         示例
         在一个if-else判断中，如果我们程序是按照我们预想的执行，到最后我们需要停止程序，那么我们使用System.exit(0)，而System.exit(1)一般放在catch块中，当捕获到异常，需要停止程序，我们使用System.exit(1)。这个status=1是用来表示这个程序是非正常退出。
  */ /*
		int count = 0;

        if (args.length < 2) {
            System.out.println("糖果机 <名字> <库存>");
            System.exit(1);
        } 
 

        try {
        	count = Integer.parseInt(args[3]);
		} catch (Exception e) {
			e.printStackTrace();
			System.exit(1);
		}*/
        //将位置和数目传入构造器
		GumballMachine gumballMachine = new GumballMachine("广场", 5);
		//实例化一个监视器并传入机器
		GumballMonitor monitor = new GumballMonitor(gumballMachine);

 
		System.out.println(gumballMachine);

		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();
		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();

		System.out.println(gumballMachine);

		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();
		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();

		System.out.println(gumballMachine);

		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();
		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();

		System.out.println(gumballMachine);

		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();
		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();

		System.out.println(gumballMachine);

		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();
		gumballMachine.insertQuarter();
		gumballMachine.turnCrank();

		System.out.println(gumballMachine);

		monitor.report();
	}
}
/*
java站口香糖模型机器

库存: 5 糖果
机器状态 是 等待投入25分
机器位置在广场

你投入了25分
得到糖果...
一个口香糖来轧出槽...
你投入了25分
得到糖果...
一个口香糖来轧出槽...
一个口香糖来轧出槽...
你是中奖者你获得了两个糖果

java站口香糖模型机器

库存: 2 糖果
机器状态 是 等待投入25分
机器位置在广场

你投入了25分
得到糖果...
一个口香糖来轧出槽...
你投入了25分
得到糖果...
一个口香糖来轧出槽...
正在出糖果!

java站口香糖模型机器

库存: 0 糖果
机器状态 是 卖光了
机器位置在广场

你不能插入一个25分，因为糖果已经卖完了
你转动了摇杆，但是已经没有糖果了
没有糖果分发
你不能插入一个25分，因为糖果已经卖完了
你转动了摇杆，但是已经没有糖果了
没有糖果分发

java站口香糖模型机器

库存: 0 糖果
机器状态 是 卖光了
机器位置在广场

你不能插入一个25分，因为糖果已经卖完了
你转动了摇杆，但是已经没有糖果了
没有糖果分发
你不能插入一个25分，因为糖果已经卖完了
你转动了摇杆，但是已经没有糖果了
没有糖果分发

java站口香糖模型机器

库存: 0 糖果
机器状态 是 卖光了
机器位置在广场

你不能插入一个25分，因为糖果已经卖完了
你转动了摇杆，但是已经没有糖果了
没有糖果分发
你不能插入一个25分，因为糖果已经卖完了
你转动了摇杆，但是已经没有糖果了
没有糖果分发

java站口香糖模型机器

库存: 0 糖果
机器状态 是 卖光了
机器位置在广场

糖果机位置: 广场
目前的库存: 0 糖果
当前状态: 卖光了*/
